package com.insigma.business.qrcode.job._bff;

import com.alibaba.fastjson.JSONObject;
import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.job.dto.TrainingVideoDTO;
import com.insigma.business.qrcode.job.dto.request.TrainingVideoInsertRequest;
import com.insigma.business.qrcode.job.dto.request.TrainingVideoSearchRequest;
import com.insigma.business.qrcode.job.dto.request.TrainingVideoUpdateRequest;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;

import java.util.List;

/**
 * 培训服务
 */
public interface TrainBFFProvider {
    @ApiServiceType(value = "all.ss.trainingVideo.base.search", name = "查询数据列表", desc = "查询数据列表")
    BasePagingResponse<List<TrainingVideoDTO>> searchTrainingVideo(final TrainingVideoSearchRequest trainingVideoSearchRequest);


    @ApiServiceType(value = "gov.ss.trainingVideo.base.view", name = "查询单条数据", desc = "查询单条数据")
    BaseResponse<TrainingVideoDTO> getTrainingVideo(final BaseGetRequest baseGetRequest);


    @ApiServiceType(value = "gov.ss.trainingVideo.base.add", name = "插入培训视频", desc = "插入培训视频", opsLog = "退役局端")
    BaseResponse<String> insertTrainingVideo(final TrainingVideoInsertRequest trainingVideoInsertRequest);


    @ApiServiceType(value = "gov.ss.trainingVideo.base.update", name = "更新数据", desc = "更新数据", opsLog = "退役局端")
    BaseResponse<Integer> updateTrainingVideo(final TrainingVideoUpdateRequest trainingVideoUpdateRequest);


    @ApiServiceType(value = "gov.ss.trainingVideo.base.publish", name = "发布数据", desc = "发布数据", opsLog = "退役局端")
    BaseResponse<Integer> publishTrainingVideo(final TrainingVideoUpdateRequest trainingVideoUpdateRequest);

    @ApiServiceType(value = "gov.ss.trainingVideo.base.top", name = "置顶数据", desc = "置顶数据", opsLog = "退役局端")
    BaseResponse<Integer> topTrainingVideo(final TrainingVideoUpdateRequest trainingVideoUpdateRequest);


    @ApiServiceType(value = "soldier.ss.trainingVideo.base.collect", name = "收藏视频", desc = "收藏视频")
    BaseResponse<Integer> collectTrainingVideo(final TrainingVideoUpdateRequest trainingVideoUpdateRequest);


    @ApiServiceType(value = "gov.ss.trainingVideo.base.delete", name = "删除数据", desc = "删除数据", opsLog = "退役局端")
    BaseResponse<Integer> deleteTrainingVideo(final BaseDeleteRequest deleteRequest);
}
